﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TSharp.Core.Authorization.Resources
{
    /// <summary>
    /// 资源类别定义的私有权限策略，可以在标准权限计算之前（PriorityPolicies）或之后
    /// （StandbyPolicies）返回定制的权限。
    /// </summary>
    public interface IResourceCategoryPolicy
    {
        /// <summary>
        /// 获取可访问资源
        /// </summary>
        void GetCanActResources(Guid actorKey, Guid operationId, HashSet<Guid> allowResourcesKey, 
            HashSet<Guid> forbidResourcesKey);

        /// <summary>
        /// 获取可访问资源
        /// </summary>
        void GetCanActResources(Guid actorKey, Guid operationId, HashSet<Guid> allowResourcesKey, 
            HashSet<Guid> forbidResourcesKey, DateTime versionDate);
    }
}
